/*Diego Lima de Freitas RA: 317632
 *Yuri Souza Padua RA: 317420
 * 
 * Classe que trata o comando de escrita
 */

package AST;

public class PrintCommand extends Command {

    private Expr expr;

    public PrintCommand(Expr expr) {
        this.expr = expr;
    }

    @Override
    public void genC(PW pw) {

        if (expr.getType() == Type.booleanType) {
            pw.print("printf(\"%s\\n\", ");
            expr.genC(pw, false);
            pw.out.print(" ? \"True\" : \"False\"");
        } else {

            // MNATER ATENCAO NESTE IF... COMO NAO TEMOS CHARTYPE, NAO TEM OPCAO DE IMPRIMIR ISSO.. MAS SEI LA..            
//            if (expr.getType() == Type.charType) {
//                //pw.print("printf(\"%c\\n\", ");
//            } else {
            pw.print("printf(\"%d\\n\", ");
//            }
//            
            expr.genC(pw, false);
        }
        pw.out.println(" );");
    }
}
